{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c2b7da21-f761-4b32-9b9e-f8985e2f8dc9",
   "metadata": {},
   "source": [
    "Ch18 线性代数\n",
    "# Numpy中的常见线性代数运算\n",
    "Book_1《编程不难》 | 鸢尾花书：从加减乘除到机器学习  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "87d7a913-a937-4137-8d79-3dcecb03639e",
   "metadata": {},
   "source": [
    "## 导入包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e9ca58d2-ea0b-4fed-92fa-1d6a4063b2c0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt \n",
    "import seaborn as sns \n",
    "from sklearn.datasets import load_iris\n",
    "import math\n",
    "\n",
    "import os\n",
    "\n",
    "# 如果文件夹不存在，创建文件夹\n",
    "if not os.path.isdir(\"Figures\"):\n",
    "    os.makedirs(\"Figures\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7cc191b9-6be8-456e-8f89-75d384a6902c",
   "metadata": {},
   "source": [
    "## 定义可视化函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "f226e6cc-70d7-4331-9a9b-5156a635def5",
   "metadata": {},
   "outputs": [],
   "source": [
    "def visualize_2D(array, title, vmax, vmin):\n",
    "    \n",
    "    fig_width  = math.ceil(array.shape[1] * 0.5)\n",
    "    fig_length = math.ceil(array.shape[0] * 0.5)\n",
    "    \n",
    "    fig, ax = plt.subplots(figsize=(fig_width, fig_length))\n",
    "    # 注意，seaborn.heatmap() 目前只能接受2D数组\n",
    "    # 本书中，一维数组可视化时用圆圈\n",
    "    # 可视化时，只有二维、三维数组用方块\n",
    "    \n",
    "    sns.heatmap(array, \n",
    "                vmax = vmax,\n",
    "                vmin = vmin,\n",
    "                annot = True,      # 增加注释\n",
    "                fmt = \".2f\",       # 注释数值的格式\n",
    "                square = True,     # 热图方格为正方形\n",
    "                cmap = 'RdYlBu_r', # 指定色谱\n",
    "                linewidths = .5,   # 方格线宽\n",
    "                cbar = False,      # 不显示色谱条\n",
    "                yticklabels=False, # 不显示纵轴标签\n",
    "                xticklabels=False, # 不显示横轴标签\n",
    "                ax = ax)           # 指定绘制热图的轴\n",
    "    \n",
    "    fig.savefig('Figures/' + title + '.svg', format='svg')\n",
    "\n",
    "# 定义绘制一元数组可视化函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e4b1bce9-46c8-4e11-bded-84894d00967f",
   "metadata": {},
   "source": [
    "## 导入鸢尾花数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8fa6e56c-ea2f-4aa7-ba3c-1586f1397adc",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1, 3.5, 1.4, 0.2],\n",
       "       [4.9, 3. , 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.3, 0.2],\n",
       "       [4.6, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.6, 1.4, 0.2],\n",
       "       [5.4, 3.9, 1.7, 0.4],\n",
       "       [4.6, 3.4, 1.4, 0.3],\n",
       "       [5. , 3.4, 1.5, 0.2],\n",
       "       [4.4, 2.9, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [5.4, 3.7, 1.5, 0.2],\n",
       "       [4.8, 3.4, 1.6, 0.2],\n",
       "       [4.8, 3. , 1.4, 0.1],\n",
       "       [4.3, 3. , 1.1, 0.1],\n",
       "       [5.8, 4. , 1.2, 0.2],\n",
       "       [5.7, 4.4, 1.5, 0.4],\n",
       "       [5.4, 3.9, 1.3, 0.4],\n",
       "       [5.1, 3.5, 1.4, 0.3],\n",
       "       [5.7, 3.8, 1.7, 0.3],\n",
       "       [5.1, 3.8, 1.5, 0.3],\n",
       "       [5.4, 3.4, 1.7, 0.2],\n",
       "       [5.1, 3.7, 1.5, 0.4],\n",
       "       [4.6, 3.6, 1. , 0.2],\n",
       "       [5.1, 3.3, 1.7, 0.5],\n",
       "       [4.8, 3.4, 1.9, 0.2],\n",
       "       [5. , 3. , 1.6, 0.2],\n",
       "       [5. , 3.4, 1.6, 0.4],\n",
       "       [5.2, 3.5, 1.5, 0.2],\n",
       "       [5.2, 3.4, 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.6, 0.2],\n",
       "       [4.8, 3.1, 1.6, 0.2],\n",
       "       [5.4, 3.4, 1.5, 0.4],\n",
       "       [5.2, 4.1, 1.5, 0.1],\n",
       "       [5.5, 4.2, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.2, 1.2, 0.2],\n",
       "       [5.5, 3.5, 1.3, 0.2],\n",
       "       [4.9, 3.6, 1.4, 0.1],\n",
       "       [4.4, 3. , 1.3, 0.2],\n",
       "       [5.1, 3.4, 1.5, 0.2],\n",
       "       [5. , 3.5, 1.3, 0.3],\n",
       "       [4.5, 2.3, 1.3, 0.3],\n",
       "       [4.4, 3.2, 1.3, 0.2],\n",
       "       [5. , 3.5, 1.6, 0.6],\n",
       "       [5.1, 3.8, 1.9, 0.4],\n",
       "       [4.8, 3. , 1.4, 0.3],\n",
       "       [5.1, 3.8, 1.6, 0.2],\n",
       "       [4.6, 3.2, 1.4, 0.2],\n",
       "       [5.3, 3.7, 1.5, 0.2],\n",
       "       [5. , 3.3, 1.4, 0.2],\n",
       "       [7. , 3.2, 4.7, 1.4],\n",
       "       [6.4, 3.2, 4.5, 1.5],\n",
       "       [6.9, 3.1, 4.9, 1.5],\n",
       "       [5.5, 2.3, 4. , 1.3],\n",
       "       [6.5, 2.8, 4.6, 1.5],\n",
       "       [5.7, 2.8, 4.5, 1.3],\n",
       "       [6.3, 3.3, 4.7, 1.6],\n",
       "       [4.9, 2.4, 3.3, 1. ],\n",
       "       [6.6, 2.9, 4.6, 1.3],\n",
       "       [5.2, 2.7, 3.9, 1.4],\n",
       "       [5. , 2. , 3.5, 1. ],\n",
       "       [5.9, 3. , 4.2, 1.5],\n",
       "       [6. , 2.2, 4. , 1. ],\n",
       "       [6.1, 2.9, 4.7, 1.4],\n",
       "       [5.6, 2.9, 3.6, 1.3],\n",
       "       [6.7, 3.1, 4.4, 1.4],\n",
       "       [5.6, 3. , 4.5, 1.5],\n",
       "       [5.8, 2.7, 4.1, 1. ],\n",
       "       [6.2, 2.2, 4.5, 1.5],\n",
       "       [5.6, 2.5, 3.9, 1.1],\n",
       "       [5.9, 3.2, 4.8, 1.8],\n",
       "       [6.1, 2.8, 4. , 1.3],\n",
       "       [6.3, 2.5, 4.9, 1.5],\n",
       "       [6.1, 2.8, 4.7, 1.2],\n",
       "       [6.4, 2.9, 4.3, 1.3],\n",
       "       [6.6, 3. , 4.4, 1.4],\n",
       "       [6.8, 2.8, 4.8, 1.4],\n",
       "       [6.7, 3. , 5. , 1.7],\n",
       "       [6. , 2.9, 4.5, 1.5],\n",
       "       [5.7, 2.6, 3.5, 1. ],\n",
       "       [5.5, 2.4, 3.8, 1.1],\n",
       "       [5.5, 2.4, 3.7, 1. ],\n",
       "       [5.8, 2.7, 3.9, 1.2],\n",
       "       [6. , 2.7, 5.1, 1.6],\n",
       "       [5.4, 3. , 4.5, 1.5],\n",
       "       [6. , 3.4, 4.5, 1.6],\n",
       "       [6.7, 3.1, 4.7, 1.5],\n",
       "       [6.3, 2.3, 4.4, 1.3],\n",
       "       [5.6, 3. , 4.1, 1.3],\n",
       "       [5.5, 2.5, 4. , 1.3],\n",
       "       [5.5, 2.6, 4.4, 1.2],\n",
       "       [6.1, 3. , 4.6, 1.4],\n",
       "       [5.8, 2.6, 4. , 1.2],\n",
       "       [5. , 2.3, 3.3, 1. ],\n",
       "       [5.6, 2.7, 4.2, 1.3],\n",
       "       [5.7, 3. , 4.2, 1.2],\n",
       "       [5.7, 2.9, 4.2, 1.3],\n",
       "       [6.2, 2.9, 4.3, 1.3],\n",
       "       [5.1, 2.5, 3. , 1.1],\n",
       "       [5.7, 2.8, 4.1, 1.3],\n",
       "       [6.3, 3.3, 6. , 2.5],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [7.1, 3. , 5.9, 2.1],\n",
       "       [6.3, 2.9, 5.6, 1.8],\n",
       "       [6.5, 3. , 5.8, 2.2],\n",
       "       [7.6, 3. , 6.6, 2.1],\n",
       "       [4.9, 2.5, 4.5, 1.7],\n",
       "       [7.3, 2.9, 6.3, 1.8],\n",
       "       [6.7, 2.5, 5.8, 1.8],\n",
       "       [7.2, 3.6, 6.1, 2.5],\n",
       "       [6.5, 3.2, 5.1, 2. ],\n",
       "       [6.4, 2.7, 5.3, 1.9],\n",
       "       [6.8, 3. , 5.5, 2.1],\n",
       "       [5.7, 2.5, 5. , 2. ],\n",
       "       [5.8, 2.8, 5.1, 2.4],\n",
       "       [6.4, 3.2, 5.3, 2.3],\n",
       "       [6.5, 3. , 5.5, 1.8],\n",
       "       [7.7, 3.8, 6.7, 2.2],\n",
       "       [7.7, 2.6, 6.9, 2.3],\n",
       "       [6. , 2.2, 5. , 1.5],\n",
       "       [6.9, 3.2, 5.7, 2.3],\n",
       "       [5.6, 2.8, 4.9, 2. ],\n",
       "       [7.7, 2.8, 6.7, 2. ],\n",
       "       [6.3, 2.7, 4.9, 1.8],\n",
       "       [6.7, 3.3, 5.7, 2.1],\n",
       "       [7.2, 3.2, 6. , 1.8],\n",
       "       [6.2, 2.8, 4.8, 1.8],\n",
       "       [6.1, 3. , 4.9, 1.8],\n",
       "       [6.4, 2.8, 5.6, 2.1],\n",
       "       [7.2, 3. , 5.8, 1.6],\n",
       "       [7.4, 2.8, 6.1, 1.9],\n",
       "       [7.9, 3.8, 6.4, 2. ],\n",
       "       [6.4, 2.8, 5.6, 2.2],\n",
       "       [6.3, 2.8, 5.1, 1.5],\n",
       "       [6.1, 2.6, 5.6, 1.4],\n",
       "       [7.7, 3. , 6.1, 2.3],\n",
       "       [6.3, 3.4, 5.6, 2.4],\n",
       "       [6.4, 3.1, 5.5, 1.8],\n",
       "       [6. , 3. , 4.8, 1.8],\n",
       "       [6.9, 3.1, 5.4, 2.1],\n",
       "       [6.7, 3.1, 5.6, 2.4],\n",
       "       [6.9, 3.1, 5.1, 2.3],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [6.8, 3.2, 5.9, 2.3],\n",
       "       [6.7, 3.3, 5.7, 2.5],\n",
       "       [6.7, 3. , 5.2, 2.3],\n",
       "       [6.3, 2.5, 5. , 1.9],\n",
       "       [6.5, 3. , 5.2, 2. ],\n",
       "       [6.2, 3.4, 5.4, 2.3],\n",
       "       [5.9, 3. , 5.1, 1.8]])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris = load_iris()\n",
    "# 从sklearn导入鸢尾花数据\n",
    "\n",
    "X = iris.data\n",
    "y = iris.target\n",
    "X"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d467a732-1c65-4c03-8f37-313e035e0458",
   "metadata": {},
   "source": [
    "## 向量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b28f1c56-d8ee-4edf-89ce-7c90a0912727",
   "metadata": {},
   "source": [
    "### 向量内积"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f1719819-5cd5-44f3-ad86-daca72e11391",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_row_1   = X[[1 - 1], :]\n",
    "x_row_2   = X[[2 - 1], :]\n",
    "x_row_51  = X[[51 - 1], :]\n",
    "x_row_101 = X[[101 - 1], :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "08d2d25c-655f-434d-bf58-d39ad6942c26",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1, 3.5, 1.4, 0.2]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_row_1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "c546b7a2-d847-421f-af90-6857b5eebbaf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 200x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(x_row_1, '行向量，第1行', 8, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "753d4536-fadb-4838-aef1-372154ea80f5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 200x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(x_row_2, '行向量，第2行', 8, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f95db3cb-467b-45ac-8f86-5cfef4c85fd2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 200x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(x_row_51, '行向量，第51行', 8, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "0d8c5d63-28fb-4dd0-b188-0dc9fbe0b4c6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 200x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(x_row_101, '行向量，第101行', 8, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c08f10c5-f259-4a1f-824d-fb35bbe5e175",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "37.489999999999995"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inner_prod_x_row_1_2 = np.dot(x_row_1[0], x_row_2[0])\n",
    "inner_prod_x_row_1_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "84c9f216-5f4a-4753-8f83-97d8606d8207",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "53.76"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inner_prod_x_row_1_51 = np.dot(x_row_1[0], x_row_51[0])\n",
    "inner_prod_x_row_1_51"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b53566fc-d0db-4897-91b2-0947abae3bf7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "52.57999999999999"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inner_prod_x_row_1_101 = np.dot(x_row_1[0], x_row_101[0])\n",
    "inner_prod_x_row_1_101"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a60388f9-b5e9-47f4-a2bf-3558076de25c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "6918c1ff-f523-4b0d-840e-ca49f16b20fe",
   "metadata": {},
   "source": [
    "### 向量范数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "e179d8eb-5415-46ae-8308-556118e82174",
   "metadata": {},
   "outputs": [],
   "source": [
    "norm_x_row_1 = np.linalg.norm(x_row_1)\n",
    "norm_x_row_2 = np.linalg.norm(x_row_2)\n",
    "norm_x_row_51 = np.linalg.norm(x_row_51)\n",
    "norm_x_row_101 = np.linalg.norm(x_row_101)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "316dbc37-d9df-43be-bf97-128409eca520",
   "metadata": {},
   "source": [
    "### 单位向量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ea4e98c5-aa27-47ef-b8d0-2610faeebc48",
   "metadata": {},
   "outputs": [],
   "source": [
    "unit_x_row_1   = x_row_1 / norm_x_row_1\n",
    "unit_x_row_2   = x_row_2 / norm_x_row_2\n",
    "unit_x_row_51  = x_row_51 / norm_x_row_51\n",
    "unit_x_row_101 = x_row_101 / norm_x_row_101"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f0a1fe1a-330d-4ba6-ae9b-3f1d39348614",
   "metadata": {},
   "source": [
    "### 向量夹角"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "cac0ab09-c6e0-43ae-856a-0f3070ab963c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.054647616988092"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dot_product_1_2 = np.dot(unit_x_row_1[0], unit_x_row_2[0])\n",
    "\n",
    "angle_1_2 = np.arccos(dot_product_1_2) #angle in radian\n",
    "angle_1_2 = np.rad2deg(angle_1_2)\n",
    "angle_1_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "1e06cba9-6c41-49c3-a352-9b6ddc91ae32",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "21.81626618258243"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dot_product_1_51 = np.dot(unit_x_row_1[0], unit_x_row_51[0])\n",
    "\n",
    "angle_1_51 = np.arccos(dot_product_1_51) #angle in radian\n",
    "angle_1_51 = np.rad2deg(angle_1_51)\n",
    "angle_1_51"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "5816c17a-c073-4dfc-b1ac-a4456e2715fa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "30.674283969016845"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dot_product_1_101 = np.dot(unit_x_row_1[0], unit_x_row_101[0])\n",
    "\n",
    "angle_1_101 = np.arccos(dot_product_1_101) #angle in radian\n",
    "angle_1_101 = np.rad2deg(angle_1_101)\n",
    "angle_1_101"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "835ba693-b1b4-471c-a40c-f6b7635a7f6d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# X矩阵有四列，请大家分别计算列向量的模，列向量之间的夹角\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "25c29295-6b91-43dc-8a46-2eb38942e3b3",
   "metadata": {},
   "source": [
    "## 矩阵乘法"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0e6c910-d07a-4a33-86a1-48b3a167e253",
   "metadata": {},
   "source": [
    "### 第一个格拉姆矩阵"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf8142c9-d22c-4fef-a8fc-e96f68b0734f",
   "metadata": {},
   "source": [
    "鸢尾花数据矩阵 $X$ 的格拉姆矩阵 $G$ 为：\n",
    "$$ G = X^\\mathsf{T} X $$  \n",
    "其中，\n",
    "$G$ 的形状为 $4 \\times 4$  \n",
    "$X^\\mathsf{T}$ 的形状为 $4 \\times 150$   \n",
    "$X$ 的形状为 $150 \\times 4$ "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "7253dfa7-bf19-4c16-a204-3b9fdcc3b5bd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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34wks2rVqqF1Vq5caSSZ9evXj8WmWfX09JjjjjvOLF++3Jx77rnmrrvuMsYUzvbnm3ytz6PNww8/bObOnes6BjxBXfqBurQ7rBHCZDKpN954QxdddNGw5RdddJH++7//e7R6VCfi8bgkqbKyUpLU3Nystra2Ydsai8V07rnnDm3rG2+8oVQqNWydhoYGnXjiiUPrrFy5UuXl5Zo/f/7QOqeffrrKy8u9eM6+8Y1v6NJLL9WFF144bHmhbH8+yef6PBq9//77amho0LRp03TNNddo8+bNriPBAerSL9TlpzushrCjo0OZTEa1tbXDltfW1qqtrW1Ug40lY4zuuecenX322TrxxBMlaWh7bNva1tamaDSqiooK6zo1NTUH/M2amhrnz9nixYv15ptvauHChQfcVwjbn2/ytT6PRvPnz9eiRYv0X//1X3rqqafU1tamM888U52dna6jYYxRl/6gLu3CR/KgQCAw7GdjzAHLjiZ33HGH3nnnHb3yyisH3Hck2/rJdQ62vuvnrKWlRXfddZeWLVumoqKiT10vX7c/n+VbfR6NLrnkkqHbs2fP1hlnnKHp06fr6aef1j333OMwGVyhLt2jLu0Oa4SwurpaoVDogP/VtLe3H/C/n6PFnXfeqf/8z//Uiy++qMbGxqHle888sm1rXV2dksmkurq6rOts3779gL+7Y8cOp8/ZG2+8ofb2ds2bN0/hcFjhcFgrVqzQk08+qXA4PJQtX7c/H+VjfeaLkpISzZ49W++//77rKBhj1KW/qMvhDqshjEajmjdvnpYvXz5s+fLly3XmmWeOarBcM8bojjvu0JIlS/TCCy9o2rRpw+6fNm2a6urqhm1rMpnUihUrhrZ13rx5ikQiw9ZpbW3VunXrhtY544wzFI/H9dprrw2t8+qrryoejzt9zi644AKtXbtWa9asGfo65ZRTdP3112vNmjU65phj8nr781E+1We+SSQSeu+991RfX+86CsYYdekv6vITDvcslMWLF5tIJGJ+/vOfm7/97W/m7rvvNiUlJWbLli2jdqbLWLj99ttNeXm5eemll0xra+vQ1+7du4fWeeSRR0x5eblZsmSJWbt2rbn22mtNfX292bVr19A6t912m2lsbDTPP/+8efPNN835559v5s6da9Lp9NA6F198sZkzZ45ZuXKlWblypZk9e7a57LLLxnR7R2L/s4yNKbztzwf5Up9Hu29+85vmpZdeMps3bzarVq0yl112mSkrK+N1KFDUpR+oS7vDbgiNMeY//uM/zJQpU0w0GjUnn3zy0FQtRxNJB/365S9/ObRONps1Dz/8sKmrqzOxWMycc845Zu3atcN+T39/v7njjjtMZWWlKS4uNpdddpn56KOPhq3T2dlprr/+elNWVmbKysrM9ddfb7q6usZgKw/PJxvCQtv+fJEP9Xm0u/rqq019fb2JRCKmoaHBXHnllebdd991HQsOUZfuUZd2AWOMcTlCCQAAALe4ljEAAECBoyEEAAAocDSEAAAABY6GEAAAoMDREAIAABQ4GkIAAIACR0MIAABQ4GgIAQAAChwNIQAAQIGjIQQAAChwNIQAAAAFjoYQAACgwNEQAgAAFDgaQgAAgAJHQwgAAFDg/j/6a1q8a77IBQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 800x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算格拉姆矩阵\n",
    "G = X.T @ X\n",
    "\n",
    "\n",
    "fig,axs = plt.subplots(1,5,figsize = (8,3), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "# 这段代码使用Matplotlib库绘制了一个包含5个子图的图形窗口，\n",
    "# 每个子图的宽度比例分别为3:0.5:3:0.5:3。\n",
    "# 其中，plt.subplots(1,5)表示创建一个包含1行5列子图的Figure对象，\n",
    "# 并返回一个包含5个AxesSubplot对象的数组axs。\n",
    "# 参数figsize=(8,3)指定了整个图形窗口的大小为8英寸×3英寸，\n",
    "# gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3]}表示使用GridSpec布局，\n",
    "# 将子图宽度的比例分别设为3:0.5:3:0.5:3。\n",
    "# 这样设置可以使得子图的大小和位置能够按照比例分配，并且在整个图形窗口中居中对齐。\n",
    "# 最后，将返回的Figure对象和AxesSubplot数组保存到变量fig和axs中，以便后续使用。\n",
    "\n",
    "plt.sca(axs[0])\n",
    "# sca的含义为Set the current Axes to ax\n",
    "# plt.sca(axs[0]) 是Matplotlib库中的一个函数，\n",
    "# 用于将当前的AxesSubplot对象设置为参数指定的对象。\n",
    "# 在这个例子中，axs是一个包含5个子图的AxesSubplot数组，\n",
    "# plt.sca(axs[0])表示将当前的AxesSubplot对象设置为数组中的第一个子图，即axs[0]。\n",
    "# 这样设置后，所有后续的绘图操作都将作用在这个子图上，\n",
    "# 直到下一次调用plt.sca()将当前对象切换为其他的AxesSubplot对象。\n",
    "\n",
    "# 绘制格拉姆矩阵\n",
    "ax = sns.heatmap(G, cmap = 'RdYlBu_r',\n",
    "                 vmax = 5000, vmin = 0,\n",
    "                 annot = False,\n",
    "                 fmt=\".0f\",\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 square = 'equal')\n",
    "plt.title('$G$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "# 绘制X转置\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(X.T, cmap = 'RdYlBu_r',\n",
    "                 vmax = 0, vmin = 8,\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels = False,\n",
    "                 annot=False)\n",
    "plt.title('$X^T$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "# 绘制X\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(X, cmap = 'RdYlBu_r',\n",
    "                 vmax = 0, vmin = 8,\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 annot=False)\n",
    "plt.title('$X$')\n",
    "\n",
    "fig.savefig('Figures/X的格拉姆矩阵.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b14f7e03-78c3-4912-93a7-a92fc27f71b8",
   "metadata": {},
   "source": [
    "### 第二个格拉姆矩阵"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc0aa88f-0faa-4e09-8305-d2f8956f115d",
   "metadata": {},
   "source": [
    "鸢尾花数据矩阵 $X^\\mathsf{T}$ 的格拉姆矩阵 $G$ 为：\n",
    "$$ G = XX^\\mathsf{T} $$  \n",
    "其中，\n",
    "$G$ 的形状为 $150 \\times 150$  \n",
    "$X$ 的形状为 $150 \\times 4$  \n",
    "$X^\\mathsf{T}$ 的形状为 $4 \\times 150$   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "53c052dc-550b-4117-9339-9b19b4dc0d49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 800x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "G_XT = X @ X.T\n",
    "\n",
    "\n",
    "fig,axs = plt.subplots(1,5,figsize = (8,3), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "plt.sca(axs[0])\n",
    "\n",
    "# 绘制格拉姆矩阵\n",
    "ax = sns.heatmap(G_XT, cmap = 'RdYlBu_r',\n",
    "                 vmin = 0, \n",
    "                 vmax = 150,\n",
    "                 annot = False,\n",
    "                 fmt=\".0f\",\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 square = 'equal')\n",
    "plt.title('$G$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "# 绘制X转置\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(X, cmap = 'RdYlBu_r',\n",
    "                 vmax = 0, vmin = 8,\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels = False,\n",
    "                 annot=False)\n",
    "plt.title('$X$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "# 绘制X\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(X.T, cmap = 'RdYlBu_r',\n",
    "                 vmax = 0, vmin = 8,\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 annot=False)\n",
    "plt.title('$X^T$')\n",
    "\n",
    "fig.savefig('Figures/XT的格拉姆矩阵.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "908c537a-0441-4202-a244-9cf56148a3b8",
   "metadata": {},
   "source": [
    "## 矩阵的逆"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "6a5b9b1a-b3b5-459f-8c14-e3f8f5b2d00b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAosAAAEUCAYAAABDMnwcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAYDklEQVR4nO3de4yU5d038N/MznLQ4sZDOElVpAbjiyIsKlgrVfpio7Yx7fPQiiXWaKttVRQP0RgfrbVAW6qpaSutNVbbvKGJAj1orRgR24LScnjK4VHaVzzQV8QDoLYe2J3r/WOXZVf2WlkEZnb380k2O3Pd18z+5pr7t/eXuXeGQkopBQAAtKNY6QIAAKhewiIAAFnCIgAAWcIiAABZwiIAAFnCIgAAWcIiAABZwiIAAFnCIgAAWcIiAABZwiIAAFnCIgDQbd15550xevToqK2tjZtvvrnS5XRJwiIA0G0NGjQovvnNb8Y555xT6VK6rFKlCwAA2Fu2h8Rf//rXlS2kC/PKIkAHVq1aFRdddFEMGzYs+vTpE/vtt18cffTRcfHFF8dTTz1V6fKg29Fz1UdYrEIPPfRQFAqFuO+++ypdCvRot99+e4wePTpWrlwZ06ZNiwcffDDmz58fF1xwQTz22GNx6qmnRkNDQ6XL5AM0NDTEfffdF2eddVb0798/SqVSDBgwICZOnBj33XdfNDY2VrpEmum56uQ0dBVavnx5RETU19dXuBLouW677ba46qqr4pprromZM2dGsbjj39YTJ06MadOmxezZs6NU8mu0mq1atSomTZoUL7/8clxwwQXxpS99KT760Y/G1q1b48knn4wbb7wx7rjjjvjVr34Vw4YNq3S5Pdru9NyECRPiz3/+c7v3d80118S3vvWtvV53T1BIKaVKF0Fbn/vc5+IPf/hDvPHGG1FTU1PpcqDHefrpp2PkyJFx5plnxrx58ypdDrtpzZo1cfLJJ8fkyZNj1qxZsf/+++805+23344rr7wyfv/738fixYvj0EMPrUCl7Iueu+iii2LIkCHeEb0bnIauQsuWLYuRI0cKil1MSikaGhp26YvqNn369Ni2bVvMmjWr0qWwmxobG2PSpElx4YUXxp133tluUEwpRa9evWL27Nkxfvz4uOSSSypQKRF7t+caGhrinXfeicbGxjaX2XXCYpV57bXX4oUXXnAKugtatGhR1NbW7tLXc889V+lyyXj33Xdj3rx5MXbs2J1OS5bL5Tahv1wuV6hKPsicOXPiX//6V8ycOTMimp67W265JQ499NDo27dvfP7zn49Zs2bFhAkTIqLpb+UeffTR+Mc//lHJsnukvd1zt956a/Tt2zd+/vOfx7e//e3o27dv/OIXv9hT5fcI/timyvh7xa6rvr4+/vKXv+zS3MGDB+/lathdzz//fLz11ltxwgkn7LRt5MiRsXr16pbrt956a9xwww37sjx20fz58+PLX/5y9OrVKyIifvjDH8Z3v/vdmD59ehx77LExb968uPHGG2Ps2LEREXHwwQfHuHHjYuHChfGxj32skqX3OHu7526++Wannj8kYbHKLFu2LCIiRo8eXeFK6KyPfOQjcfzxx+/SXG+KqF6vvvpqREQccMABO23b/s7Zhx9+OG688cY46aST9nV57KJ169bFueee23L9Jz/5SVx//fVx+eWXR0TEaaedFqtXr27zStWAAQPilVde2ee19nR6rvo5DV1lli9fHn369Iljjjmm0qXQSU5Ddw8DBgyIiKZXO95v1KhRMWbMmNi8eXMUCoV2XwmhOmzbti369OnTcn39+vU7/SP8/c/fhg0b4pBDDtkn9bGDnqt+Xt6oMsuXL4+RI0d65akLchq6exg2bFgcc8wxMX/+/NiwYUMMGTJkpzlPPvlkHH300VFXV1eBCtkVhx12WKxbty7OPPPMiGgKJO//R9r69etbLq9bty6WLl0a9957774sk9BzXYFEUkW2bt0azz77bEycOLHSpbAb+vXrF2PGjKl0GewBs2fPjokTJ8YJJ5wQV111VRx77LFRLBZjw4YN8eCDD8ZTTz0VF154YaXLpAMTJ06MOXPmxBVXXBEREZMmTYrp06fHiBEj4rjjjovf/va3LW+qWLBgQVx88cVx6aWXxpFHHlnZwnsoPVfdfM5iFVm4cGGcfvrp8bOf/UxTQIWtWbMmpk+fHgsXLoxXXnkl+vTpE0cccUR84hOfiMmTJ8fHP/7xKBQKlS6TjC1btsSwYcPitttui/PPPz/eeuutmDJlSsyfPz8iIo466qg455xz4nvf+14MGDAgrrnmmpg2bZrntIL0XPUSFqvI97///bj66qtj+fLlMWrUqEqXA9Cl3X///TFlypS49957Y9KkSRERsWnTpnj99ddj+PDhsXnz5tiy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CxemiEjPPPNMeumll1q+Ghoa9nHl1eGhhx5KN9xwQ3rggQdSRKR58+Z1ON/+V/3OOOOMdM8996TVq1enlStXprPOOisddthh6a233mqZM3PmzNSvX7/0wAMPpFWrVqUvfOELadCgQemNN95omXPJJZekQw89NC1YsCAtX748nXbaaWnkyJFteuXTn/50GjFiRFq8eHFavHhxGjFiRDr77LP36eP9IEuXLk1HHHFEOu6449LUqVNbxnvSGlD9ekIW6OxjXL9+fbr88svTvffem44//vg2/dvVdTosnnjiiemSSy5pM3b00Uen6667rt351157bTr66KPbjF188cVp7Nixnf3R3UJn1297WNy8efM+qK5r2ZWwaP/rejZt2pQiIi1atCillFK5XE4DBw5MM2fObJnzzjvvpLq6ujR79uyUUkpbtmxJtbW1ac6cOS1z/vnPf6ZisZgefvjhlFJKa9euTRGRnnzyyZY5S5YsSRGRnn766X3x0D7Qm2++mY466qi0YMGCNH78+JaDTU9aA7qGnpAFOvsYW2vdv91Bp05Dv/fee7Fs2bKYOHFim/GJEyfG4sWL273NkiVLdpp/xhlnxF//+tfYtm1bZ358l7c767fdqFGjYtCgQTFhwoRYuHDh3iyzW7H/dT1bt26NiIiDDjooIiLWr18fGzdubPM89u7dO8aPH9/SN8uWLYtt27a1mTN48OAYMWJEy5wlS5ZEXV1dnHTSSS1zxo4dG3V1dR/Yf/vKN77xjTjrrLPiU5/6VJvxnrQGVL+ekAU+zPG6O+pUWHz11VejsbExBgwY0GZ8wIABsXHjxnZvs3HjxnbnNzQ0xKuvvtrJcru23Vm/QYMGxU9/+tN44IEHYu7cuTF8+PCYMGFCPPHEE/ui5C7P/te1pJRi2rRpccopp8SIESMiIlp6o6O+2bhxY/Tq1SsOPPDADuf0799/p5/Zv3//bP/tS3PmzInly5fHjBkzdtrWU9aArqEnZIHdeYzdWWl3blQoFNpcTyntNPZB89sb7yk6s37Dhw+P4cOHt1wfN25cvPjiizFr1qw49dRT92qd3YX9r+u49NJL429/+1v86U9/2mlbZ3/vtDenvfm7cj9724svvhhTp06NRx55JPr06ZOd153XgK6nJ2SB3em57qhTrywecsghUVNTs1Oq3rRp007pe7uBAwe2O79UKsXBBx/cyXK7tt1Zv/aMHTs2/v73v+/p8rol+1/Xcdlll8VvfvObWLhwYQwZMqRlfODAgRERHfbNwIED47333ovNmzd3OOfll1/e6ee+8sorneq/vWHZsmWxadOmqK+vj1KpFKVSKRYtWhR33HFHlEqllvq68xrQdfSELLCnjtfdRafCYq9evaK+vj4WLFjQZnzBggVx8sknt3ubcePG7TT/kUceiTFjxkRtbW0ny+3admf92rNixYoYNGjQni6vW7L/Vb+UUlx66aUxd+7ceOyxx2Lo0KFttg8dOjQGDhzY5nl87733YtGiRS19U19fH7W1tW3mvPTSS7F69eqWOePGjYutW7fG0qVLW+Y89dRTsXXr1k71394wYcKEWLVqVaxcubLla8yYMXHeeefFypUr48gjj+z2a0DX0ROywJ46XncbnX1HzPa3kt99991p7dq16Yorrkj7779/eu6551JKKV133XVpypQpLfO3v13+yiuvTGvXrk1333131b9dfm/q7Prdfvvtad68eWndunVp9erV6brrrksRkR544IFKPYSKevPNN9OKFSvSihUrUkSk2267La1YsaLlowzsf13P1772tVRXV5cef/zxNh8P9e9//7tlzsyZM1NdXV2aO3duWrVqVTr33HPb/diYIUOGpEcffTQtX748nX766e1+bMxxxx2XlixZkpYsWZKOPfbYqv3YmPe/m7InrgHVqydkgc4+xpRSy/Gpvr4+TZ48Oa1YsSKtWbOmEuXvUZ0Oiyml9KMf/SgdfvjhqVevXmn06NEtH3GRUkrnn39+Gj9+fJv5jz/+eBo1alTq1atXOuKII9Kdd975oYru6jqzft/5znfSsGHDUp8+fdKBBx6YTjnllPTggw9WoOrqsP2jhN7/df7556eU7H9dUXvPZ0Ske+65p2VOuVxON910Uxo4cGDq3bt3OvXUU9OqVava3M/bb7+dLr300nTQQQelvn37prPPPju98MILbea89tpr6bzzzkv9+vVL/fr1S+edd17VfizV+8NiT1wDqltPyAKdfYzt/S47/PDD923Re0Ehpea/MAUAgPfxf0MDAJAlLAIAkCUsAgCQJSwCAJAlLAIAkCUsAgCQJSwCAJAlLAIAkCUsAgCQJSwCAJAlLAIAkCUsAgCQJSwCAJAlLAIAkCUsAgCQ9f8B7UcYE2OD7NoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 800x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "G_inv = np.linalg.inv(G)\n",
    "\n",
    "\n",
    "fig,axs = plt.subplots(1,5,figsize = (8,3), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "plt.sca(axs[0])\n",
    "\n",
    "# 绘制格拉姆矩阵\n",
    "ax = sns.heatmap(np.eye(4), cmap = 'RdYlBu_r',\n",
    "                 annot = False,\n",
    "                 fmt=\".0f\",\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 square = 'equal')\n",
    "plt.title('$I$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(G, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels = False,\n",
    "                 annot=False)\n",
    "plt.title('$G$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "# 绘制X\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(G_inv, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 annot=False)\n",
    "plt.title('$G^{-1}$')\n",
    "\n",
    "fig.savefig('Figures/格拉姆矩阵的逆.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e48ac2a-1bcd-4f7e-849e-a5d35c58d82b",
   "metadata": {},
   "source": [
    "## Cholesky分解"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "679c332a-e03c-4b34-b6f7-f03984713d29",
   "metadata": {},
   "outputs": [],
   "source": [
    "L = np.linalg.cholesky(G)\n",
    "L"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c6b08925-85fb-40aa-8990-98ee204df357",
   "metadata": {},
   "source": [
    "有关正定，请参考：  \n",
    "https://mathworld.wolfram.com/PositiveDefiniteMatrix.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "f49d0df3-b4b5-4b6f-8942-85f191401f3c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 800x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axs = plt.subplots(1,5,figsize = (8,3), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(G, cmap = 'RdYlBu_r',\n",
    "                 vmax = 5000, vmin = 0,\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 yticklabels=False,\n",
    "                 annot=True,\n",
    "                 fmt=\".0f\",\n",
    "                 square = 'equal')\n",
    "plt.title('$G$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(L, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels = False,\n",
    "                 annot=True)\n",
    "plt.title('$L$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(L.T, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 annot=True)\n",
    "plt.title('$L^T$')\n",
    "\n",
    "fig.savefig('Figures/格拉姆矩阵，Chol.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "310be9f4-a619-4cf7-9efc-439dbb55d23e",
   "metadata": {},
   "source": [
    "## 特征值分解"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "8c13122c-a050-4ebf-973f-dbece0dcbee6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[9.20830507e+03 3.15454317e+02 1.19780429e+01 3.55257020e+00]\n",
      "[[ 0.75110816  0.2841749   0.50215472  0.32081425]\n",
      " [ 0.38008617  0.5467445  -0.67524332 -0.31725607]\n",
      " [ 0.51300886 -0.70866455 -0.05916621 -0.48074507]\n",
      " [ 0.16790754 -0.34367081 -0.53701625  0.75187165]]\n"
     ]
    }
   ],
   "source": [
    "Lambdas, V = np.linalg.eig(G)\n",
    "print(Lambdas)\n",
    "print(V)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "6f743021-0ada-4ef4-9e24-83d4673aea81",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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c6V1TlTYpS0iIiIUGhqqxYsXW7fl5uZq5cqV1v+xtmnTRhaLxabN6dOntXv3bmubjh07KjU1VRs3brS22bBhg1JTU61tSpthGBo2bJhmzZqlZcuWKSIiosr07UKGYSgnJ6dS96dHjx7atWuXtm/fbn20bdtW99xzj7Zv3666detW2r5dKCcnR/v27VNYWFil/n7h4gIDAxUZGWn6MLsDysylnDMVyaWORWmdw4mJiYqNjbWZnFdULi4uatOmjc33UpIWL1580T537NixWPtFixapbdu2slgsZVZrWfon41CSbdu2VYrve2mqiudDVVRa53h5uRLmzlfKnLNTp07WUPxPBw8eVO3atSVVje+lJGVmZsrR0fZHaScnJxUWFkqqOv1E+WAeX4Q5/MUxhz+Pefw/V2rnxGV9NF8pO3funLFt2zZj27ZthiTjgw8+MLZt22YcP37cMAzDePvttw1fX19j1qxZxq5du4yBAwcaYWFhRlpamvUYjz32mFGjRg1jyZIlxtatW43u3bsbUVFRRn5+vrVN7969jRYtWhjr1q0z1q1bZzRv3tzo06dPmfXr8ccfN3x9fY0VK1YYp0+ftj4yMzOtbSpb31544QVj1apVRnR0tLFz507jxRdfNBwdHY1FixZVyv6YufATtA2jcvZt1KhRxooVK4yjR48a69evN/r06WN4e3sbx44dq7R9Quk5fvy4sW3bNuPVV181vLy8rNfhc+fOWds0atTImDVrlvX5pZwzldGlnMMXjsW5c+eMUaNGGWvXrjWio6ON5cuXGx07djSqV69eacZixowZhsViMT7//HNj7969xtNPP214enparw/PP/+8MWjQIGv7o0ePGh4eHsaIESOMvXv3Gp9//rlhsViMn376yV5dKBWXOw4TJkwwZs+ebRw8eNDYvXu38fzzzxuSjJkzZ9qrC6Xi7+ZiV8r5UBX93TlekVTFufOlqApzzr/auHGj4ezsbLz55pvGoUOHjG+++cbw8PAwvv766yrVz8GDBxvVq1c35s2bZ0RHRxuzZs0yAgMDjdGjR1epfqLiYR5fhDn8lTuHNwzm8X+y1zzerkHy8uXLDUnFHoMHDzYMwzAKCwuNMWPGGKGhoYarq6vRpUsXY9euXTbHyMrKMoYNG2YEBAQY7u7uRp8+fYyYmBibNomJicY999xjeHt7G97e3sY999xjJCcnl1m/SuqTJGPatGnWNpWtb0OGDDFq165tuLi4GEFBQUaPHj2sIXJl7I+Zv07qK2PfBgwYYISFhRkWi8UIDw83+vfvb+zZs6dS9wmlZ/DgwSVeo5YvX25t80+uWZXRpZzDF45FZmam0atXLyMoKMiwWCxGrVq1jMGDBxf7b6Oi+/jjj63X9NatWxsrV6607hs8eLDRtWtXm/YrVqwwWrVqZbi4uBh16tQxJk2aVM4Vl43LGYd33nnHqFevnuHm5mb4+/sbnTt3NubPn2+HqkvX383FrqTzoSoyO8crkqo4d74UVWHOWZJffvnFaNasmeHq6mpERkYaU6ZMsdlfFfqZlpZmDB8+3KhVq5bh5uZm1K1b13jppZeMnJwca5uq0E9UPMzjizCHv7Ln8IbBPN4w7DePdzCMP1ZWBgAAAAAAAACgBBV2jWQAAAAAAAAAQMVAkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMEWQDAAAAAAAAAAwRZAMAAAAAAAAADBFkAwAAAAAAAAAMPX/i4fi4RUo+NkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1800x500 with 11 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axs = plt.subplots(1,7,figsize = (18,5), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(G, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 annot=True,\n",
    "                 fmt=\".0f\",                 \n",
    "                 yticklabels=False,\n",
    "                 xticklabels=False,\n",
    "                 square = 'equal')\n",
    "plt.title('$G$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(V, cmap = 'RdYlBu_r',\n",
    "                vmax = 1, vmin = -1,\n",
    "                cbar_kws = {'orientation':'horizontal'},\n",
    "                xticklabels = False,\n",
    "                yticklabels = False,\n",
    "                square = 'equal')\n",
    "plt.title('$V$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(np.diag(Lambdas), cmap = 'RdYlBu_r',\n",
    "                # vmax = D_max, vmin = D_min,\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels = False,\n",
    "                 annot=True,\n",
    "                 fmt=\".0f\",                 \n",
    "                square = 'equal')\n",
    "plt.title('$\\Lambda$')\n",
    "\n",
    "plt.sca(axs[5])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "plt.sca(axs[6])\n",
    "ax = sns.heatmap(V.T, cmap = 'RdYlBu_r',\n",
    "                vmax = 1, vmin = -1,\n",
    "                cbar_kws = {'orientation':'horizontal'},\n",
    "                yticklabels=False,\n",
    "                xticklabels=False,\n",
    "                square = 'equal')\n",
    "plt.title('$V^{-1}$')\n",
    "\n",
    "fig.savefig('Figures/格拉姆矩阵，EVD.svg', format='svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "037c981b-8e4f-4344-bab9-a047b54bf2a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([95.95991387, 17.76103366,  3.46093093,  1.88482631])"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 特征值开平方\n",
    "np.sqrt(Lambdas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "97fda037-7bf3-4027-9608-69df3fbc7803",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 谱分解中V的性质"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "89dcb1d0-6c93-491a-a65f-5e7fd301ed02",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.75110816, -0.38008617, -0.51300886, -0.16790754],\n",
       "       [ 0.2841749 ,  0.5467445 , -0.70866455, -0.34367081],\n",
       "       [ 0.50215472, -0.67524332, -0.05916621, -0.53701625],\n",
       "       [ 0.32081425, -0.31725607, -0.48074507,  0.75187165]])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "V.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "87089c5f-2d81-4860-a333-4651b7e5cbd7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.75110816, -0.38008617, -0.51300886, -0.16790754],\n",
       "       [ 0.2841749 ,  0.5467445 , -0.70866455, -0.34367081],\n",
       "       [ 0.50215472, -0.67524332, -0.05916621, -0.53701625],\n",
       "       [ 0.32081425, -0.31725607, -0.48074507,  0.75187165]])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "V_inv = np.linalg.inv(V)\n",
    "V_inv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "e3e6c951-7876-4603-a524-2f2778c39a4c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 800x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axs = plt.subplots(1,5,figsize = (8,3), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(V @ V_inv, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 yticklabels=False,\n",
    "                 annot=True,\n",
    "                 fmt=\".0f\",\n",
    "                 square = 'equal')\n",
    "plt.title('$I$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(V, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels = False,\n",
    "                 annot=True)\n",
    "plt.title('$V$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(V.T, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 annot=True)\n",
    "plt.title('$V^T$')\n",
    "\n",
    "fig.savefig('Figures/V的性质，G的谱分解.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f30c8a11-e274-4f89-ae15-cc7aa6589bfe",
   "metadata": {},
   "source": [
    "## 奇异值分解"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "c8641356-699e-4a93-90e2-9591c6ba80b5",
   "metadata": {},
   "outputs": [],
   "source": [
    "U,S,VT = np.linalg.svd(X, full_matrices = False)\n",
    "V_SVD = VT.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "70dff106-9f2d-4aa2-9f3b-d3a82f687b09",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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VVtbqxkzZhjXAbHVuBTGkfxiKQwEXWJiovLz87V06VLV1dU1+97SpUv15JNP6sILL1RhYaFRIRAbvXr10vr165u+7tKly5feHCwqKmr69/Xr12vx4sWaOHFiWyUCrSI7O1uS9Itf/EKvvfaaqqurjYuA2OMcj/Zi+PDhWr16dbPHpk+frvLy8gN+mpyBZcQaA8vw7Xe/+53uu+8+/ehHP9JVV13V9PjRRx+t8847T48++qjKysrsAoEYy87O1ujRo4/oV+M6bkCQ3XLLLdqwYYMmT56sP/7xj3r22Wd122236cQTT1S/fv30i1/8wjoRaLFJkyZp9uzZTV+ff/75uv/++/WPf/xD5eXlevrpp/Xiiy+qvr5e8+bN0+TJk3XjjTeqX79+htVAy02ZMkVTp07V8uXLdeaZZ6pjx4467bTT9Nvf/la1tbXWeUBMcI5HezFs2DAVFRVp3759kqR169bpscce0w033HDAG/Rt2LBBU6ZMaetMxLGQxy1/4cNf/vIXffOb39RFF12kp5566kvfX7VqlYYPH67p06frrrvuMigEAMTC008/rV/+8pdat26damtrddRRR2nq1Kn67ne/2zTbDQiysrIy9e/fX4888oimTZumyspKXXbZZXrppZckNbxhfvbZZ+uhhx5Sly5d9L3vfU+33XYbNzVD3FizZo1effVVzZ8/X/Pnz1dNTY0mTpyoN954g+Mcgcc5Hu3FrFmzNG3aNH3wwQcaPXq0pkyZog8++EDr169Xx44drfPQDjCwDAAAgHbpT3/6ky677DI9+eSTOv/88yVJxcXFKikp0YABA1RaWqqysjL17duXwQbEtZ07d+q0007TqlWrtGbNGg0aNMg6CWgxzvFoD5YtW6aRI0dq5syZKiws1OTJk/XEE0/o6quvtk5DO8HAMgAAANqtp59+Wtdee61OO+00XXPNNRozZow6deqk0tJSLV68WE8++aQqKiqYxYm4d+211+qJJ57Qhx9+qJEjR1rnADHBOR7xrqamRllZWbrhhhs0b948paena/HixdyIFW2GgWUAAAC0a0VFRbr//vs1d+5clZSUND1eWFioiy++WLfffrsKCgoMC4HY2LZt2wFvvlpaWqrjjjtO4XBYRUVFSkpKMqgDWgfneMS7IUOGqKioSNXV1XrnnXc0btw46yS0IwwsAwAAAJIikYi2bNmi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3QbP87xZs2Z599xzj/fEE094krylS5e2Tazn/3V948aNXkZGhnfzzTd7a9as8Z544gkvOTnZ+9Of/tRmzfvzuw1FRUXeTTfd5D355JPescce68zrlt/tuPnmm72f/exn3uLFi73169d7P/jBD7zk5GTvww8/bONyBEG8XMMfyXX4gw8+6GVnZ3tz5szxVq5c6V1wwQVeYWGht2fPHsNyfw52bR3kbTuSa+agbt+RXAMHddvgtrvuust75JFHvNtuu83Lyck5ot8Tr8diNNfg06ZN8yZPnuxt27at6dfu3bvbqLjl4uE6Phb87of58+d7krx169Y1+38fDofbuDy2/vKXv3g//OEPvTlz5niSvBdffPGQz4/V8eB7YHnMmDHedddd1+yxgQMHenfccYffPypuFBcXe5K8t956yzrFREVFhXf00Ud78+bN804++WRnfkBvK9///ve98ePHW2c4YcqUKd6VV17Z7LGpU6d6l156qVERgmTNmjWeJO+9995remzRokWeJG/t2rVH/OcsXrzYk2QyWNLSbSgqKmrzgWW/r+u33367N3DgwGaP/cd//Ic3duzYVms8nJZcm7j0uhWLa6zBgwd799xzT6zTEAfi9Rp+/+vwSCTide3a1XvwwQebnlNdXe3l5OR4jz/+uFWmLwe7tg76th3umjnI23e4a+AgbxuCYebMmUc0sByvx2K01+DTpk3zzjrrrDYobB3xcB0fC373Q+PAcmlpaRvU2TiSgeVYHQ++lsKora3VkiVLNGnSpGaPT5o0Se+++67/6dJxory8XJKUm5trXGLjhhtu0JQpUzRx4kTrFBOvvPKKRo8erfPOO08FBQUaOXKknnjiCessE+PHj9ff/vY3rV+/XpK0fPlyvf322zrjjDOMyxAEixYtUk5Ojk444YSmx8aOHaucnBxfrzHl5eUKhUJH/HHAWIrVNrSVaF7XFy1a9KXnn3766frnP/+purq6Vms9mHi5NonFdkQiEVVUVLTb6xEcXLz8PTmQ/a/Di4qKtH379mbbmpqaqpNPPjkw23qwa+ugb9vhrpmDvH2HuwYO8rYhvsTrsdiSa/AFCxaooKBAxxxzjK655hoVFxe3dm5MxMN1fCy05Bpn5MiRKiws1IQJEzR//vzWzHRSrI6HJD//0V27dqm+vl5dunRp9niXLl20fft2P39U3PA8T7fddpvGjx+voUOHWue0udmzZ+vDDz/UBx98YJ1iZuPGjXrsscd022236c4779TixYt10003KTU1VZdffrl1Xpv6/ve/r/Lycg0cOFCJiYmqr6/Xfffdp4suusg6DQGwfft2FRQUfOnxgoKCI36Nqa6u1h133KGLL75YHTp0iHXiYcViG9pSNK/r27dvP+Dzw+Gwdu3apcLCwlbrPZB4uTaJxXb813/9l/bu3avzzz+/NRIRYPHy92R/B7oOb9yeA23rpk2b2rzRr0NdWwd92w53zRzk7TvcNXCQtw3xJV6PxWivwb/+9a/rvPPOU+/evVVUVKQf//jHOu2007RkyRKlpqa2ZnKLxcN1fCxEsx8KCwv1u9/9TqNGjVJNTY2eeuopTZgwQQsWLNBJJ53UFtlOiNXx4GtguVEoFGr2ted5X3qsvbjxxhu1YsUKvf3229YpbW7Lli26+eab9cYbbygtLc06x0wkEtHo0aN1//33S2p412v16tV67LHH2t3A8vPPP6+nn35azz77rIYMGaJly5bplltuUbdu3TRt2jTrPBiZPn267rnnnkM+p/EH6AO9lhzpa0xdXZ0uvPBCRSIRPfroo9HFHkRbbYMVv6/rB3r+gR5vS/FybRLtdjz33HOaPn26Xn755QP+YAVI8fP3pNGhrsODuK1Hem0dxG2TjvyaOYjbd6TXwEHcNrS9I73uHD16dNT/jaAci619DX7BBRc0/fvQoUM1evRo9e7dW6+99pqmTp0aZXXbiofr+Fjwsx8GDBigAQMGNH09btw4bdmyRQ8//HC7GliWYnM8+BpYzs/PV2Ji4pdG/YuLi780yt0e/Od//qdeeeUVLVy4UD169LDOaXNLlixRcXGxRo0a1fRYfX29Fi5cqF//+teqqalRYmKiYWHbKCws1ODBg5s9NmjQIM2ZM8eoyM73vvc93XHHHbrwwgslScOGDdOmTZv0wAMPMLDcjt14441Nx8TB9OnTRytWrNCOHTu+9L2dO3ce9jWmrq5O559/voqKivT3v/895rOV22IbLETzut61a9cDPj8pKUl5eXmt1now8XJt0pLteP7553XVVVfphRdeaLfLUuHQ4uXvyRcd7Dq8a9eukhpm4Xxxpk0QtvVw19br1q2TFMxtkw5/zRzk/3eHuwYO8rah7R3pdWc0gnYstvU1eGFhoXr37q2PP/7Yd2tbi4fr+FiI1TXO2LFj9fTTT8c6z2mxOh58rbGckpKiUaNGad68ec0enzdvnk488UQ/f1SgeZ6nG2+8UXPnztXf//539e3b1zrJxIQJE7Ry5UotW7as6dfo0aN1ySWXaNmyZe1iUFmSvvKVrzRd6Ddav369evfubVRkZ9++fUpIaH5aSUxMVCQSMSqCC/Lz8zVw4MBD/kpLS9O4ceNUXl6uxYsXN/3e999/X+Xl5Yd8jWkcVP7444/15ptvtspFUWtvg5VoXtfHjRv3pee/8cYbGj16tJKTk1ut9WDi5dok2u147rnndMUVV+jZZ5/VlClTWjsTARUvf0+kw1+H9+3bV127dm22rbW1tXrrrbec39bDXVv369cvsNsmHf6aOcj/7w53DRzkbUPbO9LrzmgE7Vhs62vw3bt3a8uWLYFYEiIeruNjIVbXOEuXLg3E//dYitnx4OtWf57nzZ4920tOTvZ+//vfe2vWrPFuueUWLzMz0/v000/9/lGBdf3113s5OTneggULvG3btjX92rdvn3WauS/eubq9WLx4sZeUlOTdd9993scff+w988wzXkZGhvf0009bp7W5adOmed27d/deffVVr6ioyJs7d66Xn5/v3X777dZpCIjJkyd7w4cP9xYtWuQtWrTIGzZsmHfmmWc2e86AAQO8uXPnep7neXV1dd43v/lNr0ePHt6yZcuanZNramosNsH3Nnie5+3evdtbunSp99prr3mSvNmzZ3tLly71tm3b1uq9h3tdv+OOO7zLLrus6fkbN270MjIyvFtvvdVbs2aN9/vf/95LTk72/vSnP7V668H43QbP87ylS5d6S5cu9UaNGuVdfPHF3tKlS73Vq1db5Dfxux3PPvusl5SU5P3mN79pduyXlZVZbQIcFi/X8EdyHf7ggw96OTk53ty5c72VK1d6F110kVdYWOjt2bPHsDw6+19bB3nbjuSaOajbdyTXwEHdNrht06ZN3tKlS7177rnHy8rKarq+qaioaHrO/ted8Xos+r0Gr6io8P7f//t/3rvvvusVFRV58+fP98aNG+d17949MPsiHq7jY8HvfpgxY4b34osveuvXr/dWrVrl3XHHHZ4kb86cOVabEBMVFRVN5wBJ3iOPPOItXbrU27Rpk+d5rXc8+B5Y9jzP+81vfuP17t3bS0lJ8Y477jjvrbfeiuaPCSxJB/w1c+ZM6zRz7XFg2fM8789//rM3dOhQLzU11Rs4cKD3u9/9zjrJxJ49e7ybb77Z69Wrl5eWlub169fP++EPf2g2wIfg2b17t3fJJZd42dnZXnZ2tnfJJZd4paWlzZ7zxfNtUVHRQc/J8+fPb/N+z/O/DZ7neTNnzjzgNtx9991t0nyo1/Vp06Z5J598crPnL1iwwBs5cqSXkpLi9enTx3vsscfapPNQ/G7DgfZ379692zb6APxsx8knn3zA7Zg2bVrbhyMQ4uEa/kiuwyORiHf33Xd7Xbt29VJTU72TTjrJW7lypV10C+x/bR30bTvcNXNQt+9IroGDum1w27Rp0w57HRzP58gv8nsNvm/fPm/SpEle586dveTkZK9Xr17etGnTvM2bN7d9fAvEw3V8LPjZDz/72c+8/v37e2lpaV6nTp288ePHe6+99ppBdWzNnz//kD8btNbxEPK8f63MDAAAAAAAAADAEfC1xjIAAAAAAAAAAAwsAwAAAAAAAAB8YWAZAAAAAAAAAOALA8sAAAAAAAAAAF8YWAYAAAAAAAAA+MLAMgAAAAAAAADAFwaWAQAAAAAAAAC+MLAMAAAAAAAAAPCFgWUAAAAAAAAAgC8MLAMAAAAAAAAAfGFgGQAAAAAAAADgCwPLAAAAAAAAAABfGFgGAAAAAAAAAPjCwDIAAAAAAAAAwBcGlgEAAAAAAAAAvjCwDAAAAAAAAADwhYFlAAAAAAAAAIAvDCwDAAAAAAAAAHxhYBkAAAAAAAAA4AsDywAAAAAAAAAAXxhYBgAAAAAAAAD4wsAyAAAAAAAAAMAXBpYBAAAAAAAAAL4wsAwAAAAAAAAA8IWBZQAAAAAAAACALwwsAwAAAAAAAAB8YWAZAAAAAAAAAOALA8sAAAAAAAAAAF8YWAYAAAAAAAAA+MLAMgAAAAAAAADAFwaWAQAAAAAAAAC+MLAMAAAAAAAAAPDl/wPzrQIqP0rF/QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1800x500 with 11 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axs = plt.subplots(1,7,figsize = (18,5), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(X, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 vmin = 0, vmax = 8,\n",
    "                 yticklabels=False,\n",
    "                 xticklabels = False)\n",
    "plt.title('$X$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(U, cmap = 'RdYlBu_r',\n",
    "                # vmax = 1, vmin = -1,\n",
    "                cbar_kws = {'orientation':'horizontal'},\n",
    "                xticklabels = False,\n",
    "                yticklabels=False)\n",
    "plt.title('$U$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(np.diag(S), cmap = 'RdYlBu_r',\n",
    "                # vmax = D_max, vmin = D_min,\n",
    "                cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                yticklabels=False,\n",
    "                 annot=True,\n",
    "                square = 'equal')\n",
    "plt.title('$S$')\n",
    "\n",
    "plt.sca(axs[5])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "plt.sca(axs[6])\n",
    "ax = sns.heatmap(V_SVD.T, cmap = 'RdYlBu_r',\n",
    "                vmax = 1, vmin = -1,\n",
    "                cbar_kws = {'orientation':'horizontal'},\n",
    "                yticklabels=False,\n",
    "                xticklabels=False,\n",
    "                square = 'equal')\n",
    "plt.title('$V^T$')\n",
    "\n",
    "fig.savefig('Figures/奇异值分解，SVD.svg', format='svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "81961fe9-0347-4e1a-a9aa-17913b84a1ed",
   "metadata": {},
   "outputs": [],
   "source": [
    "# SVD分解的奇异值性质"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "f37080b1-d794-408b-a6ee-32d942024580",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([95.95991387, 17.76103366,  3.46093093,  1.88482631])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "S"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "fb0ceb28-4cb9-4f91-bfe2-a9f4db3c522b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([95.95991387, 17.76103366,  3.46093093,  1.88482631])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 特征值开平方\n",
    "np.sqrt(Lambdas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "fdf27d7e-c8a0-4c64-a739-f8e37271ee6d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 奇异值分解中U的性质"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "17364d0c-a515-49d7-9c38-eedd489e92b2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAosAAAEQCAYAAADYoz4KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5A0lEQVR4nO3deXQUVb4H8G9Vr9lXCJsIiMMie1gSBzdgEEedwY1hcBAEccPndtTBfZn31FFmeI4KOuog4gAeBVzeiAoixAVEIICAiMouBMi+J91d9/2RpElMutLRkN8N+X7OySFdfZN8u+jb/etbdW8ZSikFIiIiIqIGmNIBiIiIiEhfLBaJiIiIKCQWi0REREQUEotFIiIiIgqJxSIRERERhcRikYiIiIhCYrFIRERERCGxWCQiIiKikFgsEhEREVFILBaJiIiIKCQWi0REDbjvvvtgGAb27t3b4P09evTA2Wef3cKpiNo29ksZLBY19P7778MwDLz22mvSUYjarM2bNyMhIQHdu3evd19eXh727t2L1NRUgWTUVH6/H6+99houvvhitG/fHk6nEykpKRg7dixee+01BAIB6YgUJvZLGSwWNbR582YA4BOeSNDmzZtD9sGNGzcCYB9tDb7++mv0798ft99+O3r37o1nnnkGa9aswb/+9S+MGDECDz74IEaMGIEffvhBOiqFgf1ShlM6ANW3efNmREZGonfv3tJRiNqkAwcO4Pjx4xg6dGiD92/atAkA35R0t2PHDowcORKTJk3C7NmzERUVVef+iy++GPfddx/uuOMOjBo1Cl988QU6d+4slJYaw34phyOLGtq0aRMGDhwIh8MhHYWaQCkFv98f1hfprbE3nY0bN8Lr9aJPnz4tGYuaIBAIYMKECZg+fTrmzZtXr1AEqvqs2+3GCy+8gPPOOw833nijQFIKF/ulHBaLmsnJycGBAwf4yagVWrt2LVwuV1hf+/btk45LNmpOBbEbwRg4cCCcTh6c0dWSJUtQUlKCJ598EgBgWRYee+wxdO7cGREREbjiiiswe/ZsjB49GgAwZ84crFq1Ct9//71kbLLBfimHe1QzPF+x9UpNTcVXX30VVttOnTqd5DT0S2zatAmJiYno1q1bvftyc3Oxb98+/Pa3v235YBS2t99+G1OnToXb7QYAPPfcc3jqqafw+OOPo3///li+fDkefPBB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\n",
      "text/plain": [
       "<Figure size 800x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axs = plt.subplots(1,5,figsize = (8,3), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(U.T @ U, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 yticklabels=False,\n",
    "                 annot=True,\n",
    "                 fmt=\".0f\",\n",
    "                 square = 'equal')\n",
    "plt.title('$I$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(U.T, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels = False,\n",
    "                 annot=False)\n",
    "plt.title('$U$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(U, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 annot=False)\n",
    "plt.title('$U$')\n",
    "\n",
    "fig.savefig('Figures/U的性质，奇异值分解.svg', format='svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "40e4db12-798e-43d4-ab5f-b6574dfd7fe0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 奇异值分解中V的性质"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "0f01a3be-596c-42d9-bd05-ac153626a977",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAo8AAAEUCAYAAABK2dxmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAh+UlEQVR4nO3de3BU9f3/8dduNiSEACFEwq0IFgQREiEhEAdoBRsGrRW1OooiiEWpUAqMpVyGSukUb2mRn1SEkaJoEb/KRalXUJKgaLmFW0QUEieh5ZqEKMRINnt+fyQsWbKEkwv5nMDzMZNhz2dP8NVP982+OJtdXJZlWQIAAABscJsOAAAAgMaD8ggAAADbKI8AAACwjfIIAAAA2yiPAAAAsI3yCAAAANsojwAAALCN8ggAAADbKI8AAACwjfIIAAAA2yiPAAAAsI3yCAAAGrWlS5cqMjJSkZGRatKkiUJDQ/3HQ4YMMR3vsuOyLMsyHQIAAKA+PPLII4qMjNTf//5301EuW1x5BAAAl43du3crLi7OdIzLGuURAM4zduxYhYaG6syZMxc855ZbblFERIRyc3MbMBlw5ajNHFqWpb1791IeLzHKowO99957crlcWr58uekowBUpLi5OXq9X+/fvD3r/hx9+qPfff1/Tp09Xp06dGjgdasrr9Wr58uW69dZb1aZNG3k8HsXGxiolJUXLly9XWVmZ6YgIojZzePDgQf3444+6/vrrGzLqFYfy6EA7duyQJCUkJBhOAlyZzl612Lt3b5X7vF6vpk6dqs6dO2vatGkNHQ01tGfPHvXu3VuTJ09Wjx49tGDBAqWlpemf//yn+vfvr9mzZ6t///46ePCg6ag4T23mcNeuXbr22msVFhbWYDmvRB7TAVDVjh07FBERoR49epiOAlyRqnvSevHFF/Xll19q1apVCg8Pb+hoqIGsrCwNHDhQI0eOVGpqqpo1axZw/6233qqZM2dqypQpGjJkiDZv3qwOHToYSovz1WYO+XnHhsG7rR3o6quvVocOHbR582bTUVADlmXZfvnL4+HvbU7Xrl07JSUl6e233/avFRYWqlu3brrhhhu0YcMGg+lwMWVlZYqLi9OwYcMu+K5by7Lk8/kUEhKiBx98UIWFhVq3bl0DJ0V1ajqHd9xxh5KSkjRjxoyGjnpF4WVrh8nPz1dubi4vWTdC6enpCg0NtfX17bffmo6Li4iLi1NWVlbA2pw5c1RUVKQFCxYYSgW7Vq5cqdOnT+upp56SJPl8Ps2dO1cdOnRQ06ZNdddddyk1NVVDhw6VJM2fP18bNmzQgQMHTMbGeWo6h1x5bBhc/nAYft6x8UpISNDWrVttndu+fftLnAZ11bt3b23YsEHFxcWKiIjQ/v37tWjRIk2YMIEfxm8E1q5dqzFjxqhJkyaSpIULF+qZZ57RvHnz1Lt3b61Zs0azZ8/WgAEDJEmtW7dWcnKyNm7cqK5du5qMjkpqOof87GrDoDw6zPbt2yVJffv2NZwENRUZGakbbrjB1rm8bO18cXFx8vl8+vLLL5WYmKipU6cqKipKc+bMMR0NNnz99de67777/MeLFy/WjBkzNGnSJEnSTTfdpL1798rn8/nPiY2N1fHjxxs8Ky6MOXQmXrZ2mB07dig8PFw9e/Y0HQU1xMvWl5fKP6z/4Ycf6r333tO8efMUFRVlNhhsKS0tDXgjRU5OTpW/lPfr1y/g+NChQ4qJiWmQfLCHOXQmLn84zI4dOxQfH8+VqUaIl60vL9ddd508Ho927typZ599VgkJCRo7dqzpWLCpU6dO+vrrr3XLLbdIKr+qeP5f2nJycvy3v/76a23ZskWvvPJKQ8bERTCHzkRDcZCioiJlZ2crJSXFdBTUQvPmzZWYmGg6BupJWFiYrr32Wi1ZskQlJSX67LPP5HbzYk1jkZKSopUrV2ry5MmSpHvuuUfz5s1Tr169FBcXp3Xr1mnNmjUaMGCA1q9fr0cffVQTJ07UNddcYzY4AjCHzsT/Aw6yY8cOWZbFm2UAh4iLi9MPP/ygBx54QMnJyabjoAbGjh2rb775xn8lcfbs2UpMTNTgwYMVFRWluXPnasqUKfr00081atQoTZgwQampqYZTIxjm0Hn4nEcH+dvf/qbHH39cO3bsUJ8+fUzHAYBG7a233tKoUaP0yiuv6J577pEkHTt2TAUFBerevbsKCwt18uRJdenSRS6Xy3BaoPGgPAIALluvvfaaHnnkEQ0ZMkTjxo1TUlKSWrVqpcLCQv/POH7//ff66KOPKJCATZRHAMBlLScnR/PmzdPq1atVUFDgX2/Xrp1GjhypadOmqU2bNgYTAo0L5REAcEXw+XzKy8tTUVGRoqOj1bFjR9ORgEaJ8ggAAADbeLc1AAAAbKM8AgAAwDbKIwAAAGzjX5gBrhAj5q43HaFaa4ZnmI5QrTMZWaYjVCu0n7P/ZRT3YD6AOxinz+VD999gOkK1DhwqMh2hWvf1c/a/ld4+IqpW33dJyuMKV/dL8dvWm9Sk35uOgEtox38eMx0BAIDLFi9bAwAAwDbKIwAAAGyjPAIAAMA2yiMAAABsozwCAADANsojAAAAbKM8AgAAwDbKIwAAAGyjPAIAAMA2yiMAAABsozwCAADANsojAAAAbKM8AgAAwDbKIwAAAGzzmA5wIVcNSlTPPzysVgm9FNG+jTJGPKZDb39sOlZQj/6mn+4c0VPNm4dpb9ZRPfVshrJzCk3H8iMfAACoL4698uhpFqHCXfu1beJc01GqNXpUH90/Ml5Pp27SqIfeUn5BsRY9/ytFRISajiaJfAAAoH45tjwe/iBDu2c/p0Nr1puOUq2R98Zp6bLt+iQtWwezC/SnP3+s8HCPhg/rZjqaJPIBAID65djy2Bh0aN9CV8U00xf/yfOvlZb6tD3zf4rr3dZgsnLkAwAA9Y3yWAetW0dIkvILigPWCwqKFVNxn0nkAwAA9c2xb5hxouHDumnW9J/7jydNfbf8hnX+mS5ZVdYuPfIBAIBLjfJYA+mbvtXerDf8x6GhIZLKr6CdyD939Sw6ummVq2nkc34+AABwcZTHGiguLlVxcWnA2vETpzUgqaP2f31CkuTxuJXQp73+3z8+J18jywcAAC7OseXR0yxCkV07+Y+bdemoqPgeOlNQpOK8wwaTBVqxcrfGjklQbl6RcvOKNHZMX5WUePX+h9+YjiaJfAAAoH45tjxGJ/bSzWmv+o8T5s+UJGW/vFpfPDTDVKwqXnk1U+FhHk2fNlgtKj7k+rFJ66pcYTOFfAAAoD45tjweS9+iFa7upmPYsvilrVr80lbTMS6IfAAAoL7wUT0AAACwjfIIAAAA2yiPAAAAsI3yCAAAANsojwAAALCN8ggAAADbKI8AAACwjfIIAAAA2yiPAAAAsI3yCAAAANsojwAAALCN8ggAAADbKI8AAACwzWM6AICG8dD9N5iOUK2SVxeYjlCtiW1nmY5QrdE/vc50hGoNNh3AodYMzzAdoVpOn8v/aznNdIRqxXeJNh2hWu071e77Lkl5TE36/aX4bevN41ucPQxO3z8AAHDl4mVrAAAA2EZ5BAAAgG2URwAAANhGeQQAAIBtlEcAAADYRnkEAACAbZRHAAAA2EZ5BAAAgG2URwAAANhGeQQAAIBtlEcAAADYRnkEAACAbZRHAAAA2EZ5BAAAgG0e0wHsePQ3/XTniJ5q3jxMe7OO6qlnM5SdU2g001WDEtXzDw+rVUIvRbRvo4wRj+nQ2x8bzRTM3Xddrwcf6KOY1hHKzilQ6vzPlLnzsOlYfk7PBwAAAjn+yuPoUX10/8h4PZ26SaMeekv5BcVa9PyvFBERajSXp1mECnft17aJc43mqE7KzV31+JSBWrpsu0Y++KYydx7W8/N/qbaxkaajSXJ+PgAAUJXjy+PIe+O0dNl2fZKWrYPZBfrTnz9WeLhHw4d1M5rr8AcZ2j37OR1as95ojurcf1+81r6zT2vf2aecbwuVOv8zHT16Sr++q5fpaJKcnw8AAFTl6PLYoX0LXRXTTF/8J8+/Vlrq0/bM/ymud1uDyZzP43Hruh5XBeydJH2+JU/xvWMNpTrH6fkAAEBwji6PrVtHSJLyC4oD1gsKihVTcR+Ci4oKl8fjVn7BDwHrBfnF/n01yen5AABAcI56w8zwYd00a/rP/ceTpr5bfsM6/0yXrCprCOq8jXK5HLZ3Ts8HAAACOKo8pm/6Vnuz3vAfh4aGSCq/Anki/9zVx+joplWuRiLQyZMl8np9Va7itYpuqgIH7J3T8wEAgOAc9bJ1cXGp8g595//KzinU8ROnNSCpo/8cj8ethD7ttXvPEYNJnc/r9WnfV8fVP+knAesDkjpq156jhlKd4/R8AAAgOEddeQxmxcrdGjsmQbl5RcrNK9LYMX1VUuLV+x9+YzSXp1mEIrt28h8369JRUfE9dKagSMV5zvicwn+9vkt/mTNU+746pt17jurOET3VNra5Vq3eazqaJOfnAwAAVTm+PL7yaqbCwzyaPm2wWlR8SPhjk9apuLjUaK7oxF66Oe1V/3HC/JmSpOyXV+uLh2aYihXgow0H1LJlmMaNTVRMTDMdzM7XpCn/1uEjp0xHk+T8fAAAoCrHl0dJWvzSVi1+aavpGAGOpW/RCld30zEu6s1VWXpzVZbpGBfk9HwAACCQo37mEQAAAM5GeQQAAIBtlEcAAADYRnkEAACAbZRHAAAA2EZ5BAAAgG2URwAAANhGeQQAAIBtlEcAAADYRnkEAACAbZRHAAAA2EZ5BAAAgG2URwAAANhGeQQAAIBtHtMBADSMA4eKTEeo1v+1nGY6QrVe+k2E6QjV+ue2k6YjVGtwhyjTERzpTEaW6QjVmth2lukI1XL6XM5PO2E6QrVu7hRdq++7IstjatLvTUeo1uNbFpiOUC2n7x8AALh0eNkaAAAAtlEeAQAAYBvlEQAAALZRHgEAAGAb5REAAAC2UR4BAABgG+URAAAAtlEeAQAAYBvlEQAAALZRHgEAAGAb5REAAAC2UR4BAABgG+URAAAAtnlMB7Dj0d/0050jeqp58zDtzTqqp57NUHZOoelYkqS777peDz7QRzGtI5SdU6DU+Z8pc+dh07F01aBE9fzDw2qV0EsR7dsoY8RjOvT2x6ZjVeHU/QMAAME5/srj6FF9dP/IeD2dukmjHnpL+QXFWvT8rxQREWo6mlJu7qrHpwzU0mXbNfLBN5W587Cen/9LtY2NNB1NnmYRKty1X9smzjUd5YKcvH8AACA4x5fHkffGaemy7fokLVsHswv0pz9/rPBwj4YP62Y6mu6/L15r39mnte/sU863hUqd/5mOHj2lX9/Vy3Q0Hf4gQ7tnP6dDa9abjnJBTt4/AAAQnKPLY4f2LXRVTDN98Z88/1ppqU/bM/+nuN5tDSaTPB63rutxVUA2Sfp8S57ie8caStV4sH8AADROji6PrVtHSJLyC4oD1gsKihVTcZ8pUVHh8njcyi/4IWC9IL/YnxsXxv4BANA4OeoNM8OHddOs6T/3H0+a+m75Dev8M12yqqwZcl4Ql8tB2RoD9g8AgEbFUeUxfdO32pv1hv84NDREUvkVyBP5564+Rkc3rXI1sqGdPFkir9dX5SpZq+imKjCcrTFg/wAAaJwc9bJ1cXGp8g595//KzinU8ROnNSCpo/8cj8ethD7ttXvPEYNJJa/Xp31fHVf/pJ8ErA9I6qhde44aStV4sH8AADROjrryGMyKlbs1dkyCcvOKlJtXpLFj+qqkxKv3P/zGdDT96/Vd+sucodr31THt3nNUd47oqbaxzbVq9V7T0eRpFqHIrp38x826dFRUfA+dKShScZ4zPkfRyfsHAACCc3x5fOXVTIWHeTR92mC1qPiQ8McmrVNxcanpaPpowwG1bBmmcWMTFRPTTAez8zVpyr91+Mgp09EUndhLN6e96j9OmD9TkpT98mp98dAMU7ECOHn/AABAcI4vj5K0+KWtWvzSVtMxgnpzVZbeXJVlOkYVx9K3aIWru+kYF+XU/QMAAME56mceAQAA4GyURwAAANhGeQQAAIBtlEcAAADYRnkEAACAbZRHAAAA2EZ5BAAAgG2URwAAANhGeQQAAIBtlEcAAADYRnkEAACAbZRHAAAA2EZ5BAAAgG2URwAAANjmMR0AQMO4r1+M6QjViu8SbTpCteannTAdoVr3zv2V6QjVy9htOoEjhfa7xnSEao3+6XWmI1Trn9tOmo5QLcfP5c21m0vKowOlJv3edIRqPb5lgekIF/GY6QAAAFy2eNkaAAAAtlEeAQAAYBvlEQAAALZRHgEAAGAb5REAAAC2UR4BAABgG+URAAAAtlEeAQAAYBvlEQAAALZRHgEAAGAb5REAAAC2UR4BAABgG+URAAAAtnlMB7Dj0d/0050jeqp58zDtzTqqp57NUHZOoelYkqS777peDz7QRzGtI5SdU6DU+Z8pc+dh07H8nJrvqkGJ6vmHh9UqoZci2rdRxojHdOjtj03HAgAAF+H4K4+jR/XR/SPj9XTqJo166C3lFxRr0fO/UkREqOloSrm5qx6fMlBLl23XyAffVObOw3p+/i/VNjbSdDRJzs7naRahwl37tW3iXNNRAABADTi+PI68N05Ll23XJ2nZOphdoD/9+WOFh3s0fFg309F0/33xWvvOPq19Z59yvi1U6vzPdPToKf36rl6mo0lydr7DH2Ro9+zndGjNetNRAABADTi6PHZo30JXxTTTF//J86+Vlvq0PfN/iuvd1mAyyeNx67oeVwVkk6TPt+QpvnesoVTnOD0fAABonBxdHlu3jpAk5RcUB6wXFBQrpuI+U6KiwuXxuJVf8EPAekF+sT+3SU7PBwAAGidHvWFm+LBumjX95/7jSVPfLb9hnX+mS1aVNUPOC+JyOSib5Px8AACgUXFUeUzf9K32Zr3hPw4NDZFUfgXyRP65q4/R0U2rXI1saCdPlsjr9VW5itcquqkKDGeTnJ8PAAA0To562bq4uFR5h77zf2XnFOr4idMakNTRf47H41ZCn/baveeIwaSS1+vTvq+Oq3/STwLWByR11K49Rw2lOsfp+QAAQOPkqCuPwaxYuVtjxyQoN69IuXlFGjumr0pKvHr/w29MR9O/Xt+lv8wZqn1fHdPuPUd154ieahvbXKtW7zUdTZKz83maRSiyayf/cbMuHRUV30NnCopUnGf+cygBAEBwji+Pr7yaqfAwj6ZPG6wWFR8S/tikdSouLjUdTR9tOKCWLcM0bmyiYmKa6WB2viZN+bcOHzllOpokZ+eLTuylm9Ne9R8nzJ8pScp+ebW+eGiGqVgAAOAiHF8eJWnxS1u1+KWtpmME9eaqLL25Kst0jAtyar5j6Vu0wtXddAwAAFBDjvqZRwAAADgb5REAAAC2UR4BAABgG+URAAAAtlEeAQAAYBvlEQAAALZRHgEAAGAb5REAAAC2UR4BAABgG+URAAAAtlEeAQAAYBvlEQAAALZRHgEAAGAb5REAAAC2UR4BAABgm8uyLMt0iOr8+OOPevLJJzVjxgyFhYWZjlMF+erG6fkAAEAgx5fH7777Ti1btlRRUZFatGhhOk4V5Ksbp+cDAACBeNkaAAAAtlEeAQAAYBvlEQAAALY5vjyGhYXpiSeecOybKchXN07PBwAAAjn+DTMAAABwDsdfeQQAAIBzUB4BAABgG+URAAAAtlEeAQAAYJvjy+MLL7ygLl26KDw8XAkJCdq0aZPpSJKkjIwM3XbbbWrfvr1cLpfWrl1rOlKAJ598Uv369VPz5s3Vpk0bjRgxQvv37zcdy2/RokWKi4tTixYt1KJFCyUnJ+v99983HQsAAFyEo8vjG2+8ocmTJ2vWrFnKzMzUoEGDNHz4cOXm5pqOptOnTys+Pl4LFy40HSWo9PR0TZgwQV988YXWr18vr9erlJQUnT592nQ0SVLHjh311FNPadu2bdq2bZuGDBmi22+/XVlZWaajAQCAajj6o3r69++vvn37atGiRf616667TiNGjNCTTz5pMFkgl8ulNWvWaMSIEaajXNDx48fVpk0bpaena/DgwabjBBUdHa1nn31WDz/8sOkoAADgAhx75fHMmTPavn27UlJSAtZTUlK0efNmQ6kar6KiIknlBc1pysrKtHLlSp0+fVrJycmm4wAAgGp4TAe4kBMnTqisrEyxsbEB67GxsTpy5IihVI2TZVmaOnWqBg4cqF69epmO47dnzx4lJyerpKREkZGRWrNmjXr27Gk6FgAAqIZjy+NZLpcr4NiyrCprqN7EiRO1e/duffrpp6ajBOjevbt27typkydPatWqVRo9erTS09MpkAAAOJhjy2NMTIxCQkKqXGU8duxYlauRuLDf/e53euedd5SRkaGOHTuajhOgSZMm6tq1qyQpMTFRW7du1YIFC7R48WLDyQAAwIU49mcemzRpooSEBK1fvz5gff369brxxhsNpWo8LMvSxIkTtXr1an3yySfq0qWL6UgXZVmWfvzxR9MxAABANRx75VGSpk6dqlGjRikxMVHJyclasmSJcnNzNX78eNPRdOrUKR04cMB/nJOTo507dyo6OlqdOnUymKzchAkTtGLFCr399ttq3ry5/wpuy5Yt1bRpU8PppJkzZ2r48OH6yU9+ou+//14rV65UWlqaPvjgA9PRAABANRz9UT1S+YeEP/PMMzp8+LB69eql+fPnO+KjZtLS0nTTTTdVWR89erRefvnlhg90ngv9XOiyZcs0ZsyYhg0TxMMPP6yPP/5Yhw8fVsuWLRUXF6c//vGP+sUvfmE6GgAAqIbjyyMAAACcw7E/8wgAAADnoTwCAADANsojAAAAbKM8AgAAwDbKIwAAAGyjPAIAAMA2yiMAAABsozwCAADANsojAAAAbKM8AgAAwDbKIwAAAGyjPAIAAMA2z6X4Tfv2f0HuULfkdssd6pYrNESuEFf5bbdLrtCQ8tshLrk85ff519wuuUND5Ha7FBLqlsfjltvtkufsmsctT6i74nZIxX3njs/e9oSU/xrqcZ+7HeLy3+fxuBVS6TxPiFuhHrfcLpc8Hlf5r+7yr5CK25XX3P41KdTtksftltsl/31ul1chrlK55Cv/1eULWHNXrIXIK7erVO6K+10qk1teyeeVLEsq80qWr/y4rEyyfLJ8Xsnnk3zlxyoLcr7XK3nLys/zVpzvLZO8Xlln7/dZFedVur/ifKvUJ5VZFb/6ZJWWf8nnC7jPKi07d57PklVaVr5eZqms1CfLZ8lXWiZfxe1zaz75SsuCrPnk81nBIvnXysqsKmuVz7u3bP+leFg3emfn0hUa4p9D/1xWrFWeS3eoWwpxB8ylx1N+f+W5DPHfDjKHHrdc7vKZ9VTMV6jHXWkOK+bLP3tuhYac+96z55fPqQJmLyToPFaeWwXMZYjLKp+5SnPpdnkD1tyuUoW4vP7bZ+fS7SqV6+wcnp0zX8WsVZ7Lsor7/TN6bm7Lv+fcHJ6bzfI5tMqCPJjPO//Cs1dx35nyWQq4r2LOKs+lz1smq8wKmEuf11exdm4ufZVns2Iuq8SrmEPLsqqsnf0jxudjLi8kIXlRwHOg/3nzvOfFgBkNeE51B8ylxxMid4grYC49nvLvrTyXIRXPqVXnzBUwl+eeP899ryek8vOnKmbO7X8+DP5cWf5rqDvw+TPEZQU8R7pV5p+5ys+LlecypGJuA+bSV3Zu5s7Opa/i+a7yXJYFzq3KgjxYKz3QrYvNbWlZxXPf2dkskypm7ezs6Uz5vFo+K/C+yvNVZgXMZdnZeaw0l/61St/n9VoXfK6sPJdBosvrlUZatZtLrjwCAADANsojAAAAbKM8AgAAwDbKIwAAAGyjPAIAAMA2yiMAAABsozwCAADAPquelZSUWE888YRVUlJS37/1FYH9qxv2Lzj2pW7Yv7ph/4JjX+qG/aubuuyfy7Isqz7L6HfffaeWLVuqqKhILVq0qM/f+orA/tUN+xcc+1I37F/dsH/BsS91w/7VTV32j5etAQAAYBvlEQAAALZRHgEAAGBbvZfHsLAwPfHEEwoLC6vv3/qKwP7VDfsXHPtSN+xf3bB/wbEvdcP+1U1d9q/e3zADAACAyxcvWwMAAMA2yiMAAABsozwCAADANsojAAAAbKtVeXzhhRfUpUsXhYeHKyEhQZs2bar2/PT0dCUkJCg8PFzXXHONXnzxxVqFvVzUZP/S0tLkcrmqfH311VcNmNg5MjIydNttt6l9+/ZyuVxau3btRb+Hx1+gv/71r7rxxhsVERGhqKgo03EahZr+mYdytZnXKxVzWTPMZO3Vx1zWuDy+8cYbmjx5smbNmqXMzEwNGjRIw4cPV25ubtDzc3JydMstt2jQoEHKzMzUzJkzNWnSJK1atarGYS8HNd2/s/bv36/Dhw/7v7p169ZAiZ3l9OnTio+P18KFC22dz+OvqjNnzujuu+/Wb3/7W9NRGoXazixqPq9XMubSPmaybuplLmv6j2EnJSVZ48ePD1jr0aOHNX369KDnT5s2zerRo0fA2qOPPmoNGDCgpv/py0JN92/jxo2WJKuwsLAB0jUukqw1a9ZUew6PvwtbtmyZ1bJlS9MxHK+mM4vg7MwrmEs7mMn6U9u5rNGVxzNnzmj79u1KSUkJWE9JSdHmzZuDfs/nn39e5fxhw4Zp27ZtKi0trcl/vtGrzf6d1adPH7Vr105Dhw7Vxo0bL2XMywqPP9RFXWYWQP1jJp2hRuXxxIkTKisrU2xsbMB6bGysjhw5EvR7jhw5EvR8r9erEydO1DBu41ab/WvXrp2WLFmiVatWafXq1erevbuGDh2qjIyMhojc6PH4Q13UZmYBXDrMpDPU6g0zLpcr4NiyrCprFzs/2PqVoib71717d40bN059+/ZVcnKyXnjhBd16661KTU1tiKiXhSvh8Tdnzpygb6yq/LVt2zbTMRutmv6ZB0jM5aXETJrlqcnJMTExCgkJqdLujx07VuVvAWe1bds26Pkej0etW7euYdzGrTb7F8yAAQP02muv1Xe8y9KV8vibOHGi7r333mrP6dy5c8OEuYzU18ziysRc1j9m0hlqVB6bNGmihIQErV+/XnfccYd/ff369br99tuDfk9ycrLWrVsXsPbRRx8pMTFRoaGhtYjceNVm/4LJzMxUu3btLkXEy86V8viLiYlRTEyM6RiXnfqaWVyZmMv6x0w6Q43KoyRNnTpVo0aNUmJiopKTk7VkyRLl5uZq/PjxkqQZM2bov//9r5YvXy5JGj9+vBYuXKipU6dq3Lhx+vzzz7V06VK9/vrr9fu/pJGo6f4999xz6ty5s66//nqdOXNGr732mlatWnXFftTMqVOndODAAf9xTk6Odu7cqejoaHXq1InHnw25ubkqKChQbm6uysrKtHPnTklS165dFRkZaTacA11sZnFhF5tXnMNc2sdM1k29zGVt3tr9j3/8w7r66qutJk2aWH379rXS09P9940ePdr62c9+FnB+Wlqa1adPH6tJkyZW586drUWLFtXmP3vZqMn+Pf3009ZPf/pTKzw83GrVqpU1cOBA69133zWQ2hnOfnTR+V+jR4+2LIvHnx2jR48OuocbN240Hc2xqptZXNjF5hXnMJc1w0zWXn3MpcuyKt49AAAAAFwE/7Y1AAAAbKM8AgAAwDbKIwAAAGyjPAIAAMA2yiMAAABsozwCAADANsojAAAAbKM8AgAAwDbKIwAAAGyjPAIAAMA2yiMAAABsozwCAADANsojAAAAbKM8AgAAwDbKIwAAAGz7/4VEkqFd+fhSAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 800x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axs = plt.subplots(1,5,figsize = (8,3), \n",
    "                       gridspec_kw={'width_ratios': [3, 0.5, 3, 0.5, 3]})\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(V_SVD @ V_SVD.T, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 yticklabels=False,\n",
    "                 annot=True,\n",
    "                 fmt=\".0f\",\n",
    "                 square = 'equal')\n",
    "plt.title('$I$')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(V_SVD, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 vmax = 1, vmin = -1,\n",
    "                 xticklabels = False,\n",
    "                 yticklabels = False,\n",
    "                 annot=False)\n",
    "plt.title('$V$')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')\n",
    "plt.axis('off')    \n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(V_SVD.T, cmap = 'RdYlBu_r',\n",
    "                 cbar_kws = {'orientation':'horizontal'},\n",
    "                 vmax = 1, vmin = -1,\n",
    "                 xticklabels = False,\n",
    "                 yticklabels=False,\n",
    "                 annot=False)\n",
    "plt.title('$V^T$')\n",
    "\n",
    "fig.savefig('Figures/V的性质，G的谱分解.svg', format='svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "2a76d332-aee9-4e69-b1d7-20b5eac340a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Repo: https://github.com/Visualize-ML\n",
    "# Book 1 Python for Beginners  |  From Basic Arithmetic to Machine Learning\n",
    "# Published and copyrighted by Tsinghua University Press\n",
    "# Beijing, China, 2023"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
